package org.jiuling.aliyun.sms.dto;

import org.jiuling.basics.enums.FileSuffixEnum;

/**
 * 签名文件列表数据传输对象
 * @author 紫灵
 * @date 2023年02月16日 21时48分12秒
 */
public class SignFileListDto {

    /** 签名的资质证明文件经base64编码后的字符串 大小为2M */
    private String fileContents;
    /** 签名的证明文件格式，支持上传多张图片 签名来源为企业并且申请账户为个人时需要上传证明文件和授权委托书 */
    private FileSuffixEnum fileSuffix;

    public String getFileContents() {
        return fileContents;
    }

    public void setFileContents(String fileContents) {
        this.fileContents = fileContents;
    }

    public FileSuffixEnum getFileSuffix() {
        return fileSuffix;
    }

    public void setFileSuffix(FileSuffixEnum fileSuffix) {
        this.fileSuffix = fileSuffix;
    }

    /**
     * 构建按方法
     * @return 构建类
     */
    public static Builder builder(){
        return new Builder();
    }

    /**
     * 构建类
     */
    public static final class Builder{
        private final SignFileListDto signFileListDto;

        public Builder() {
            this.signFileListDto = new SignFileListDto();
        }

        /**
         * 添加签名资质证明文件
         * @param fileContents 资质证明文件
         * @return 构建类
         */
        public Builder addFileContents(String fileContents){
            this.signFileListDto.fileContents = fileContents;
            return this;
        }

        /**
         * 添加签名文件格式
         * @param fileSuffix 文件格式
         * @return 构建类
         */
        public Builder addFileSuffix(FileSuffixEnum fileSuffix){
            this.signFileListDto.fileSuffix = fileSuffix;
            return this;
        }

        /**
         * 构建
         * @return 签名文件列表数据传输对象
         */
        public SignFileListDto build(){
            return signFileListDto;
        }
    }
}
